package com.tangcco.lockwell.repository;

import com.tangcco.lockwell.domain.GroupsRelationship;
import com.tangcco.lockwell.domain.User;
import com.tangcco.lockwell.viewmodel.admin.groups.GroupsRelationshipFindVM;
import com.tangcco.lockwell.viewmodel.admin.groups.GroupsRelationshipUpdateVM;
import org.apache.ibatis.annotations.Param;

import java.util.List;
/**
 * 群组用户关系映射器接口
 * @author 李金昭
 * 用于映射数据库中的groups_relationship表
 *
 */

public interface GroupsRelationshipMapper {
    // 插入一条群组用户关系记录到数据库
    int insert(GroupsRelationship record);
    int insertSelective(GroupsRelationship record);
    // 动态删除群组用户关系记录的方法，可以根据id或者group_id进行删除操作
    int deleteGroupUserByConditionsSelective(@Param("userId") Integer userId, @Param("groupId") Integer groupId);
    int deleteByGroupId(@Param("groupId") Integer groupId);

/*
    // 动态查询方法，根据传入的多个参数进行灵活查询
    List<GroupsRelationship> findGroupUsersByConditionsSelective(GroupsRelationshipFindVM groupsRelationshipFindVM);
*/

    // 根据群组id 用户id查询信息，
    GroupsRelationship findGroupUsersByConditions(@Param("groupId") Integer groupId, @Param("userId") Integer userId);

    //修改状态和权限
    int updateGroup(GroupsRelationshipUpdateVM groupsRelationshipUpdateVM);

    //根据id查询
    GroupsRelationship findGroupUsersById(@Param("id") Integer id);
    List<GroupsRelationship> findByGroupIdAndUserType(@Param("groupId") Integer groupId);

    List<User> findGroupUsersByGroupIdAndUserType(@Param("groupId") Integer groupId);




}
